get free quote

NOSQL nedir?

NOSQL Nedir?

nosql

NOSQL yıllardır kullanılan MSSQL ve MYSQL gibi ilişkisel kullanılan veri tabanı sistemlerine (RDBMS) alternatif olarak türetilmiş bir veri tabanı sistemidir. NOSQL sistemlerinde bildiğimiz anlamda sql dili kullanılmadığı için NOSQL olarak adlandırılmıştır. Henüz teknolojik bir standart olmadığı için bazı kişiler tarafından “Not Only SQL” olarak da isimlendirilir. Bazılarına göre yeni, hızlı ve esnek olan bu sistem kimilerine göre henüz yeterli değil. Ancak bunun üzerine düşünmek yerine şöyle bir şey düşünelim, BigData... Son yıllarda duyduğumuz bu isim yıllardır biriktirdiğimiz verilerin anlamlı hale dönüştürülme çabasıdır. Bu veri o kadar büyük boyuta ulaşır ki ilişkisel veri tabanı sistemlerinde tutulamaz. Burada tutulamadığı içinde veriler anlamlandırılamaz ve bilgi çöplüğü olarak kalır. Ancak bu bilgi çöplüğü diye tabir ettiğimiz aslında çok önemli ve yararlı verileri barındırır. İşte bu durumda başvurulan sistem NOSQL çözümleridir.

NOSQL'in önemini şöyle vurgulayabiliriz. Google yıllardır indekslediği sitelerin bilgilerini RDBMS'de değil Big Table üzerinde tutuyor. Bu sayede RDBMS gibi büyük verileri performanslı bir şekilde işleyemeyen pahalı sistemler yerine açık kaynaklı ucuz ve performanslı sistemleri tercih ediyor.

NOSQL'in Farkı Nedir?

NOSQL, RDBMS gibi işlem tabanlı çalışmaz. Bunun yerine yatay büyüme yaparak, performans kazancı sağlar. Verileri bölerek kopyalarını dağınık sistemin farklı parçalarına ekler böylelikle tutarlılık sağlar ve her bir parça için harcanan yük azaltılmış olur.

RDBMS önceden tasarlanıp sütunları belirlenir ve satır satır eklenir. Ancak NOSQL de bu tip bir tanıma gerek yoktur. Bunun yerine daha esnek bir yapı bulunur. Bu kafanızda soru işareti bırakıyorsa şöyle düşünün. 2 adet kolonu olan bir tablonuzda integer verileri tutuyorsunuz yeni satırınızda bunlar yerine varchar eklemeniz gerekiyor. Hiçbir değişikliğe gerek kalmadan verinizi ekleyebilirsiniz. A kolonu B kolonu varken C ve D'ye gerek yok.

NOSQL birincil indeks değerine ihtiyaç duyar ve bunun üzerinden erişim sağlar. RDBMS de bu zorunlu değildir. Oluşan indeks üzerinden belirli aralığa hızlıca ulaşılabilir.

Aralarındaki en önemli fark bizce veri tabanı tasarımında oluşuyor. RDBMS bir sistem için kullanacağınız veriyi nasıl depolayacağım diye düşünürken, NOSQL için depoladığım veriyi nasıl kullanacağım diye düşünüyorsunuz. Bu da proje yazarken sadece projenizi yazmanızı sağlıyor.

NOSQL Sistemleri nelerdir?

Döküman (Document) tabanlı:  Bu tip veri tabanları JSON yapısında kayıt yapar. Bu yapılarda sınırsız alan oluşturabilirsiniz. Hatta sınırsız alanların içine sınırsız alanlar ve onların da içine şeklinde devam edebilirsiniz. MongoDB, CouchDB, Amazon Simple DB, Cassandra, HBase...

Anahtar / Değer (Key / Value) tabanlı:  Bu sistemlerde anahtarlara karşılık gelen tek bir bilgi bulunur. Kolon yapısı yoktur. MemcacheDB, Berkeley DB, Azure Table Storage...

Grafik (Graph) tabanlı:  Bu sistemler diğerlerinden farklı olarak verilerin ilişkisini saklayan Graph Theory modelindeki sistemlerdir. Neo4J, FlockDB...

NOSQL Kullanmalı mıyım?

Bunca zamandır RDBMS kullanmıştım ne gerek var NOSQL'e diyebilirsiniz. Hatta NOSQL kullanmak çok anlamlı da gelmeyebilir. Ancak sürekli büyüyen veri toplayan sitelerde belli bir limitiniz var bunu aştığınız anda yavaşlamalar performans azalmaları başlıyor. Bu noktalara ulaşacak projelerde NOSQL tercih edilmelidir. En önemlisi her proje NOSQL'e uygun olmayabilir. Bunun değerlendirmesinin iyi yapılıp karar verilmesi gerekiyor.